<template>
  <!-- 广告布局容器（前台展示版）-->
  <div class="ad-layout">
    <div class="ad-container">
      <div
        v-for="item in adItems"
        :key="item.id"
        class="ad-item"
        :class="`layout-${item.layoutType}`"
      >
        <div class="ad-content">
          <h3 class="ad-title">{{ item.title }}</h3>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
/**
 * 广告布局组件（前台展示版）
 * 用于展示广告位布局，仅支持展示功能，不支持拖拽操作
 */
export default {
  /**
   * 组件名称
   */
  name: 'AdLayout',
  /**
   * 组件属性定义
   */
  props: {
    /**
     * 广告位配置数组
     * @type {Array<{id: number, title: string, layoutType: string}>}
     * @required
     */
    adItems: {
      type: Array, // 类型为数组
      required: true // 必须提供
    }
  },
}
</script>

<style scoped>
/* 广告布局容器样式 */
.ad-layout {
  width: 100%; /* 占满父容器宽度 */
}

/* 流式布局容器样式 */
.ad-container {
  display: flex; /* 弹性布局 */
  flex-wrap: wrap; /* 允许换行 */
  margin: -10px; /* 负外边距抵消子元素的外边距，实现无缝布局 */
}

/* 基础广告位样式 */
.ad-item {
  margin: 10px; /* 外边距 */
  transition: all 0.3s ease; /* 过渡动画效果 */
}

/* 不同布局类型的宽度设置 */
/* 使用calc函数减去外边距以精确控制宽度 */
.layout-one-column {
  width: calc(100% - 20px); /* 一栏布局：占满宽度 */
}

.layout-two-column {
  width: calc(50% - 20px);
}

.layout-three-column {
  width: calc(33.333% - 20px);
}

/* 广告内容容器样式 */
.ad-content {
  background: #f0f0f0;
  border-radius: 8px;
  padding: 20px;
  min-height: 120px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  transition: all 0.3s ease;
  width: 100%;
}

/* 广告内容悬停效果 */
.ad-content:hover {
  background: #e8e8e8;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* 广告标题样式 */
.ad-title {
  font-size: 18px;
  color: #333;
  margin-bottom: 8px;
}

/* 布局信息样式（预留样式，当前版本未使用） */
.ad-layout-info {
  font-size: 14px;
  color: #666;
  margin: 0;
}
</style>
